#!/usr/bin/env python3

a = -3
b = 5

#  3的二进制    0000 0011
#  -3的补码     1111 1101
#  5的二进制    0000 0101

# -3 >> 1       1111 1110
#  补码换算二进制 -1按位取位:
                #  1111 1101
            #  -2  0000 0010
print(a >> 1)

# -3 << 1       1111 1010
#  补码换算二进制 -1按位取位:
                #  1111 1001
            #  -6  0000 0110
print(a << 1)

#  -3 & 5          1111 1101
                #  0000 0101
                #  0000 0101    5
print(a & b)

#  -3 & 5          1111 1101
                #  0000 0101
                #  1111 1101
#  补码换算二进制 -1按位取位:
                   #  1111 1100
                   #  0000 0011  -3
print(a | b)

#  -3 ^ 5          1111 1101
                #  0000 0101
                #  1111 1000
#  补码换算二进制 -1按位取位:
                   #  1111 0111
                   #  0000 1000  -8
print(a ^ b)


#  ~-3          1111 1101
                #  0000 0010  2
print(~a)

